package com.jied.duodian.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class DdUserExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    private Integer limit;

    private Long offset;

    public DdUserExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add( criteria );
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add( criteria );
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add( criteria );
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public Integer getLimit() {
        return limit;
    }

    public void setLimit(Integer limit) {
        this.limit = limit;
    }

    public Long getOffset() {
        return offset;
    }

    public void setOffset(Long offset) {
        this.offset = offset;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException( "Value for condition cannot be null" );
            }
            criteria.add( new Criterion( condition ) );
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException( "Value for " + property + " cannot be null" );
            }
            criteria.add( new Criterion( condition, value ) );
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException( "Between values for " + property + " cannot be null" );
            }
            criteria.add( new Criterion( condition, value1, value2 ) );
        }

        public Criteria andIdIsNull() {
            addCriterion( "id is null" );
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion( "id is not null" );
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion( "id =", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion( "id <>", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion( "id >", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion( "id >=", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion( "id <", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion( "id <=", value, "id" );
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion( "id in", values, "id" );
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion( "id not in", values, "id" );
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion( "id between", value1, value2, "id" );
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion( "id not between", value1, value2, "id" );
            return (Criteria) this;
        }

        public Criteria andUsernameIsNull() {
            addCriterion( "username is null" );
            return (Criteria) this;
        }

        public Criteria andUsernameIsNotNull() {
            addCriterion( "username is not null" );
            return (Criteria) this;
        }

        public Criteria andUsernameEqualTo(String value) {
            addCriterion( "username =", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameNotEqualTo(String value) {
            addCriterion( "username <>", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThan(String value) {
            addCriterion( "username >", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameGreaterThanOrEqualTo(String value) {
            addCriterion( "username >=", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameLessThan(String value) {
            addCriterion( "username <", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameLessThanOrEqualTo(String value) {
            addCriterion( "username <=", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameLike(String value) {
            addCriterion( "username like", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameNotLike(String value) {
            addCriterion( "username not like", value, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameIn(List<String> values) {
            addCriterion( "username in", values, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameNotIn(List<String> values) {
            addCriterion( "username not in", values, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameBetween(String value1, String value2) {
            addCriterion( "username between", value1, value2, "username" );
            return (Criteria) this;
        }

        public Criteria andUsernameNotBetween(String value1, String value2) {
            addCriterion( "username not between", value1, value2, "username" );
            return (Criteria) this;
        }

        public Criteria andPasswordIsNull() {
            addCriterion( "`password` is null" );
            return (Criteria) this;
        }

        public Criteria andPasswordIsNotNull() {
            addCriterion( "`password` is not null" );
            return (Criteria) this;
        }

        public Criteria andPasswordEqualTo(String value) {
            addCriterion( "`password` =", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordNotEqualTo(String value) {
            addCriterion( "`password` <>", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThan(String value) {
            addCriterion( "`password` >", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordGreaterThanOrEqualTo(String value) {
            addCriterion( "`password` >=", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordLessThan(String value) {
            addCriterion( "`password` <", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordLessThanOrEqualTo(String value) {
            addCriterion( "`password` <=", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordLike(String value) {
            addCriterion( "`password` like", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordNotLike(String value) {
            addCriterion( "`password` not like", value, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordIn(List<String> values) {
            addCriterion( "`password` in", values, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordNotIn(List<String> values) {
            addCriterion( "`password` not in", values, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordBetween(String value1, String value2) {
            addCriterion( "`password` between", value1, value2, "password" );
            return (Criteria) this;
        }

        public Criteria andPasswordNotBetween(String value1, String value2) {
            addCriterion( "`password` not between", value1, value2, "password" );
            return (Criteria) this;
        }

        public Criteria andNicknameIsNull() {
            addCriterion( "nickname is null" );
            return (Criteria) this;
        }

        public Criteria andNicknameIsNotNull() {
            addCriterion( "nickname is not null" );
            return (Criteria) this;
        }

        public Criteria andNicknameEqualTo(String value) {
            addCriterion( "nickname =", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameNotEqualTo(String value) {
            addCriterion( "nickname <>", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameGreaterThan(String value) {
            addCriterion( "nickname >", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameGreaterThanOrEqualTo(String value) {
            addCriterion( "nickname >=", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameLessThan(String value) {
            addCriterion( "nickname <", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameLessThanOrEqualTo(String value) {
            addCriterion( "nickname <=", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameLike(String value) {
            addCriterion( "nickname like", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameNotLike(String value) {
            addCriterion( "nickname not like", value, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameIn(List<String> values) {
            addCriterion( "nickname in", values, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameNotIn(List<String> values) {
            addCriterion( "nickname not in", values, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameBetween(String value1, String value2) {
            addCriterion( "nickname between", value1, value2, "nickname" );
            return (Criteria) this;
        }

        public Criteria andNicknameNotBetween(String value1, String value2) {
            addCriterion( "nickname not between", value1, value2, "nickname" );
            return (Criteria) this;
        }

        public Criteria andPhoneIsNull() {
            addCriterion( "phone is null" );
            return (Criteria) this;
        }

        public Criteria andPhoneIsNotNull() {
            addCriterion( "phone is not null" );
            return (Criteria) this;
        }

        public Criteria andPhoneEqualTo(String value) {
            addCriterion( "phone =", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneNotEqualTo(String value) {
            addCriterion( "phone <>", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneGreaterThan(String value) {
            addCriterion( "phone >", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneGreaterThanOrEqualTo(String value) {
            addCriterion( "phone >=", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneLessThan(String value) {
            addCriterion( "phone <", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneLessThanOrEqualTo(String value) {
            addCriterion( "phone <=", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneLike(String value) {
            addCriterion( "phone like", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneNotLike(String value) {
            addCriterion( "phone not like", value, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneIn(List<String> values) {
            addCriterion( "phone in", values, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneNotIn(List<String> values) {
            addCriterion( "phone not in", values, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneBetween(String value1, String value2) {
            addCriterion( "phone between", value1, value2, "phone" );
            return (Criteria) this;
        }

        public Criteria andPhoneNotBetween(String value1, String value2) {
            addCriterion( "phone not between", value1, value2, "phone" );
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion( "`status` is null" );
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion( "`status` is not null" );
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion( "`status` =", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion( "`status` <>", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion( "`status` >", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion( "`status` >=", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion( "`status` <", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion( "`status` <=", value, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion( "`status` in", values, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion( "`status` not in", values, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion( "`status` between", value1, value2, "status" );
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion( "`status` not between", value1, value2, "status" );
            return (Criteria) this;
        }

        public Criteria andRoleIsNull() {
            addCriterion( "`role` is null" );
            return (Criteria) this;
        }

        public Criteria andRoleIsNotNull() {
            addCriterion( "`role` is not null" );
            return (Criteria) this;
        }

        public Criteria andRoleEqualTo(Integer value) {
            addCriterion( "`role` =", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleNotEqualTo(Integer value) {
            addCriterion( "`role` <>", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleGreaterThan(Integer value) {
            addCriterion( "`role` >", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleGreaterThanOrEqualTo(Integer value) {
            addCriterion( "`role` >=", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleLessThan(Integer value) {
            addCriterion( "`role` <", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleLessThanOrEqualTo(Integer value) {
            addCriterion( "`role` <=", value, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleIn(List<Integer> values) {
            addCriterion( "`role` in", values, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleNotIn(List<Integer> values) {
            addCriterion( "`role` not in", values, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleBetween(Integer value1, Integer value2) {
            addCriterion( "`role` between", value1, value2, "role" );
            return (Criteria) this;
        }

        public Criteria andRoleNotBetween(Integer value1, Integer value2) {
            addCriterion( "`role` not between", value1, value2, "role" );
            return (Criteria) this;
        }

        public Criteria andGenderIsNull() {
            addCriterion( "gender is null" );
            return (Criteria) this;
        }

        public Criteria andGenderIsNotNull() {
            addCriterion( "gender is not null" );
            return (Criteria) this;
        }

        public Criteria andGenderEqualTo(Integer value) {
            addCriterion( "gender =", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderNotEqualTo(Integer value) {
            addCriterion( "gender <>", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThan(Integer value) {
            addCriterion( "gender >", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThanOrEqualTo(Integer value) {
            addCriterion( "gender >=", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderLessThan(Integer value) {
            addCriterion( "gender <", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderLessThanOrEqualTo(Integer value) {
            addCriterion( "gender <=", value, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderIn(List<Integer> values) {
            addCriterion( "gender in", values, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderNotIn(List<Integer> values) {
            addCriterion( "gender not in", values, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderBetween(Integer value1, Integer value2) {
            addCriterion( "gender between", value1, value2, "gender" );
            return (Criteria) this;
        }

        public Criteria andGenderNotBetween(Integer value1, Integer value2) {
            addCriterion( "gender not between", value1, value2, "gender" );
            return (Criteria) this;
        }

        public Criteria andIconIsNull() {
            addCriterion( "icon is null" );
            return (Criteria) this;
        }

        public Criteria andIconIsNotNull() {
            addCriterion( "icon is not null" );
            return (Criteria) this;
        }

        public Criteria andIconEqualTo(String value) {
            addCriterion( "icon =", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconNotEqualTo(String value) {
            addCriterion( "icon <>", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconGreaterThan(String value) {
            addCriterion( "icon >", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconGreaterThanOrEqualTo(String value) {
            addCriterion( "icon >=", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconLessThan(String value) {
            addCriterion( "icon <", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconLessThanOrEqualTo(String value) {
            addCriterion( "icon <=", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconLike(String value) {
            addCriterion( "icon like", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconNotLike(String value) {
            addCriterion( "icon not like", value, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconIn(List<String> values) {
            addCriterion( "icon in", values, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconNotIn(List<String> values) {
            addCriterion( "icon not in", values, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconBetween(String value1, String value2) {
            addCriterion( "icon between", value1, value2, "icon" );
            return (Criteria) this;
        }

        public Criteria andIconNotBetween(String value1, String value2) {
            addCriterion( "icon not between", value1, value2, "icon" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion( "create_time is null" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion( "create_time is not null" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion( "create_time =", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion( "create_time <>", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion( "create_time >", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion( "create_time >=", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion( "create_time <", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion( "create_time <=", value, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion( "create_time in", values, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion( "create_time not in", values, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion( "create_time between", value1, value2, "createTime" );
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion( "create_time not between", value1, value2, "createTime" );
            return (Criteria) this;
        }
    }

    /**
     *
     */
    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this( condition, value, null );
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this( condition, value, secondValue, null );
        }

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }
    }
}